package com.cjkj.equipment.service;

import com.cjkj.common.core.domain.AjaxResult;
import com.cjkj.equipment.domain.TEquipmentInfo;
import com.cjkj.equipment.domain.dto.EquipmentDataReq;
import com.cjkj.equipment.domain.dto.EquipmentDistributionReq;
import com.cjkj.equipment.domain.vo.EquipmentDataVo;
import com.cjkj.equipment.domain.vo.EquipmentExportVo;
import com.cjkj.equipment.domain.vo.EquipmentImportVo;
import com.cjkj.hospital.domain.THospitalEquipment;

import java.util.List;

/**
 * 设备信息Service接口
 * 
 * @author cjkj
 * @date 2024-08-26
 */
public interface ITEquipmentInfoService
{
    /**
     * 查询设备信息
     * 
     * @param id 设备信息主键
     * @return 设备信息
     */
    TEquipmentInfo selectTEquipmentInfoById(String id);

    /**
     * 查询设备信息列表
     * 
     * @param req 参数信息
     * @return 设备信息集合
     */
    List<EquipmentDataVo> getTEquipmentInfoList(EquipmentDataReq req);
    List<EquipmentExportVo> getTEquipmentExportList(EquipmentDataReq req);

    /**
     * 新增设备信息
     * 
     * @param tEquipmentInfo 设备信息
     * @return 结果
     */
    int insertTEquipmentInfo(TEquipmentInfo tEquipmentInfo);

    /**
     * 修改设备信息
     * 
     * @param tEquipmentInfo 设备信息
     * @return 结果
     */
    int updateTEquipmentInfo(TEquipmentInfo tEquipmentInfo);

    /**
     * 批量删除设备信息
     * 
     * @param id 需要删除的设备信息主键集合
     * @return 结果
     */
    int deleteTEquipmentInfoById(String id);

    /**
     * 导入数据
     *
     * @param equipmentInfoList 设备数据列表
     * @param operName 操作用户
     * @return 结果
     */
    String importEquipment(List<EquipmentImportVo> equipmentInfoList, String operName);

    /**
     * 分配设备到医院
     * @param req 参数
     */
    void doDistribution(EquipmentDistributionReq req);

    /**
     * 回收设备
     * @param ids
     */
    AjaxResult doRecovery(String[] ids);

    /**
     * 修改多参数监测仪测试状态
     * @return
     */
    int changeTestStatus(THospitalEquipment hosEq);
}
